//
// Created by Administrator on 2020/7/1.
//第三章:函数——get:
//1.函数的定义与调用、参数传递
//2.内联函数、带默认参数值的函数、函数重载
//3.C++系统函数

//第三章:实验
//例1:编写函数float Convert(float TempFer),参数和返回值都为float类型。实现算法:C=(F-32)*5/9

/*
#include <iostream>
using namespace std;

float Convert(float F)
{
    float C;
    C=(F-32)*5/9;
    return C;
}

int main()
{
    float F;
    cout<<"please input the temperature in fahrenheit:\n";
    cin>>F;

    cout<<"Convert the temperature in celsius:\n";
    cout<<Convert(F);

    return 0;
}

*/

//例2:编写函数递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为:
//fib(n)=fib(n-1)+fib(n-2),n>2;
//fib(1)=fib(2)=1。


#include <iostream>
using namespace std;

int fib(int n);

int main()
{
    int n,answer;
    cout<<"Enter number:";
    cin>>n;
    cout<<"\n\n";
    answer=fib(n);
    cout<<answer<<" is the "<<n<<"th Fibonacci number\n";
    return 0;
}

int fib(int n)
{
    cout<<"Processing fib("<<n<<")...";
    if (n<3)
    {
        cout<<"Return 1!\n";
        return (1);
    }
    else
    {
        cout<<"Call fib("<<n-2<<") and fib("<<n-1<<").\n";
        return (fib(n-2)+fib(n-1));//递归调用 自己调用自己
    }

}
